package main

import (
	"fmt"
	"os"
)

// 终端其实是个文件: os.Stdin, os.Stdout, os.Stderr
func main() {
	os.Stdout.WriteString("终端输出")

	// 打开关闭文件
	file, err := os.Open("d:/application.yaml")
	if err != nil {
		fmt.Println("打开文件失败: ", err)
		return
	}
	defer file.Close()

	// 读文件
	bytes, err := os.ReadFile("d:/application.yaml")
	if err != nil {
		fmt.Println("读取文件失败: ", err)
		return
	}
	fmt.Println(string(bytes))

	// 写文件
	file, err = os.Create("./xxx.txt")
	if err != nil {
		fmt.Println(err)
		return
	}
	//defer file.Close()
	for i := 0; i < 5; i++ {
		file.WriteString("哈哈哈\n")
		file.Write([]byte("呵呵呵\n"))
	}
	file.Close()

	// 删除文件
	err = os.Remove("./xxx.txt")
	if err != nil {
		fmt.Println(err)
		return
	}

	// bufio 带缓冲区的读写
	// ioutil工具包（已过时）
}
